package com.example.demo.dto;

import com.example.demo.param.voj.VojProblemLanguageParam;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;

import java.util.List;

@Data
public class ProblemViewDto {
    /**
     * 试题的唯一标识符.
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private long problemId;

    /**
     * 试题是否公开.
     */
    private String isPublic;

    /**
     * 试题名称.
     */
    private String problemName;

    /**
     * 试题包分类.
     */
    private String problemCategories;

    /**
     * 试题包分类Id.
     */
    private String problemCategoryIds;

    /**
     * 试题包分类Slug.
     */
    private String problemCategorySlugs;


    /**
     * 试题包含的标签.
     */
    private String problemTags;

    /**
     * 是否精确匹配
     */
    private boolean isExactlyMatch;


    /**
     * 试题的总提交总数.
     */
    private long totalSubmission;

    /**
     * 试题的提交通过总数.
     */
    private long acceptedSubmission;

    /**
     * 语言-时间内存限制
     */
    private List<VojProblemLanguageDto> languageList;

    /**
     * 试题描述.
     */
    
    private String description;

    /**
     * 输入格式.
     */
    
    private String inputFormat;

    /**
     * 输出格式.
     */
    
    private String outputFormat;

    /**
     * 样例输入.
     */
    
    private String sampleInput;

    /**
     * 样例输出.
     */
    
    private String sampleOutput;

    /**
     * 试题提示.
     */
    
    private String hint;

    private String userSubmitResult;
    /**
     * 所属公司id
     */
    private Long companyId;
    /**
     * 所属公司名称
     */
    private String companyName;

    /**
     * 创建人标识
     */
    private Long creatorId;

}
